#pragma once

#include "State.h"
#include "Application.h"

namespace RyForce
{
	class MenuState : public State<Application>, public OIS::KeyListener, public OIS::MouseListener
	{
	public:

		MenuState(Application*, std::string _name = "MenuState");

		virtual void enter();

		virtual void exit();

		virtual bool pause() ;

		virtual void resume() ;

		virtual void update(double timeSinceLastFrame);

		virtual void postFrame(){};

		virtual ~MenuState(){};

		bool keyPressed(const OIS::KeyEvent &keyEventRef);
		bool keyReleased(const OIS::KeyEvent &keyEventRef);

		bool mouseMoved(const OIS::MouseEvent &arg);
		bool mousePressed(const OIS::MouseEvent &arg, OIS::MouseButtonID id); 
		bool mouseReleased(const OIS::MouseEvent &arg, OIS::MouseButtonID id);

		bool onExitButton(const CEGUI::EventArgs &args);
		bool onEnterButton(const CEGUI::EventArgs &args);

	private:
		Ogre::Camera*			mCamera;
		Ogre::SceneManager*		mSceneMgr;

		

	};

}